package ThreadDemo;
/**
 * 守护线程
 *
 * java进程中至少要有一条用户线程活着,否则进程就会结束.如果进程在结束时发现还有守护线程活着会强行杀死这些
 * 线程.
 *
 * 守护线程是通过用户线程启动前调用方法setDaemon(true)设置而来的.
 * 而用户线程就是我们默认创建的线程.
 *
 */
public class DaemonThreadDemo {
    public static void main(String[] args) {
      Thread rose=new Thread("慕阳"){
          @Override
          public void run() {
              for (int i = 0; i < 5; i++) {
                  System.out.println(getName()+"：let me go！");
                  try {
                      Thread.sleep(1000);
                  } catch (InterruptedException e) {
                      e.printStackTrace();
                  }
              }
              System.out.println(getName()+":aaaaaaa！想我"+
                      getName()+"当初 驰骋逆战沙场。。。。");
              System.out.println(getName()+"扑通");
              System.out.println(getName()+"死了");
              System.out.println("赴赴: you jump i look，说去出笑死人呢慕阳哥哥 ");

          }
      };
      Thread jack=new Thread("赴赴"){
          @Override
          public void run() {
              while (true){
                  System.out.println(getName()+":you jump i jump");
                  try {
                      Thread.sleep(1000);
                  } catch (InterruptedException e) {
                      e.printStackTrace();
                  }
              }
          }
      };
      rose.start();
      jack.setDaemon(true);
      jack.start();
      /*
            如果让主线程死循环,那么rose线程结束,jack也不会被进程杀死
            因为主线程也是用户线程,只要进程中有一条用户线程活着,进程就不会结束,也就不会强行杀死守护线程
         */
//        while(true);
    }
}
